This invention relates to a method of storing data in a file, the file being composed of a series of logically successive clusters, data sectors in a cluster being stored one-to-one in physically successive storage sectors of the cluster.
The invention also relates to a system for storing data in a file, which system comprises a file system for storing the file which comprises a series of logically successive clusters, data sectors in each cluster being stored one-to-one in physically successive storage sectors of the cluster.
The invention also relates to an information carrier provided with a file with data, which file comprises a series of logically successive clusters, data sectors in each cluster being stored one-to-one in physically successive storage sectors of the cluster.
The invention also relates to a method of fetching data from a file which comprises a logically successive series of clusters, data sectors in each cluster being stored one-to-one in physically successive storage sectors of the cluster, the storage sectors in a given cluster being read by blocks in order to fetch each time some of the data sectors.
The invention also relates to a system for making data available to a user, the system comprising a file system for managing a file which comprises a series of logically successive clusters, data sectors in each cluster being stored one-to-one in physically successive storage sectors of the cluster.
Such a system for making data available to a user is known for so-called video-on-demand servers. A server of this kind comprises one or more discs on which files are stored. A file then contains a film which the server presents to a user on demand. In the known system a file comprises a number of clusters which have a logic order and which may be distributed on the disc. A cluster comprises physically successive sectors with the data of the file. The sectors with the data of the file are fetched from the disc by blocks so as to be placed in a buffer wherefrom the data are presented to the user at a rate which corresponds to the timing of the film. The size of a block equals the size of the buffer, so that the buffer is always completely filled. The system has two buffers for a user: while the first buffer is filled with data being presented to the user, the second buffer is available so as to be filled with the next block from the disc. The cycle of the scheduler of the system is such that the next block is present in the second buffer before all of the data in the first buffer have been presented. At that instant the first and the second buffer change functions and the process is repeated. Fetching a block for the buffer in the known system generally requires one seek operation by the head on the disc, because the sectors to be fetched are physically successively arranged in the cluster. The length of each cluster is a multiple of the length of the block, so that the last block of a cluster can also be fetched by way of one seek operation.
The known system has a number of possibilities for interaction whereby the user can control the showing of the relevant movie, for example fast showing of the film or jumping to a given point in the film. Consequently, at a given instant the user may demand data which commence at an arbitrary position within a cluster. The starting position of a block within a cluster, however, can be chosen to be situated only in a position amounting to a multiple of the size of the block so that it is ensured that the remaining part of the cluster can be read in an integer number of blocks. The block containing the demanded data is fetched and arranged in the first user buffer. Because of the restrictions imposed as regards the starting position of this block, the block will often contain an amount of data preceding the demanded data. Because in that case the buffer only partly contained data to be presented to the user, there is a risk of the buffer becoming empty before the scheduler has executed the next cycle. Therefore, before the user receives the demanded data, the system fetches not only the block containing the relevant data but also the next block and places the latter block in the second buffer. The presentation of the buffered data to the user commences only after that. Consequently, the scheduler must execute two cycles between the instant at which the user demands the data and the instant at which the user receives the data. This imposes a long waiting period for the user.